win10下 轻松搭建python web 开发环境(nginx + tornado + flask) | 您所在的位置:网站首页 › flask django tornado › win10下 轻松搭建python web 开发环境(nginx + tornado + flask) |
本文参考了 piglite的大作windows下使用配置nginx + tornado + flaskGodLordGee的大作Windows 下Flask Nginx Tornado 协同工作的简单例子0 前言linux下python web开发,已有较为成熟的方案,nginx + gunicorn|uwsgi + flask。windows下python web开发,不建议使用apache或iis作为服务器,配置复杂度高,且经常会出现我等小白不能解决的问题。(.oo.)高手莫笑!windows下建议采用nginx + tornado + flask方案。使用nginx web服务器,tornado充当wsgi,tornado负责监听5000端口,转发flask应用。1. nginx安装与配置1.1 安装nginx访问nginx官网,下载win版nginx,目前只有32位版。nginx为免安装程序,解压后直接运行即可。本文假设将nginx程序解压至c:\nginx文件夹中。 1.2 测试nginx能否运行win+R快捷键,输入cmd,进入命令行程序界面。 cd .. cd .. cd nginx start nginx即可启动nginx服务器。启动后在浏览器中输入http://127.0.0.1或http://localhost后,即显示nginx欢迎画面。如果未显示,说明80端口被其它应用占用了。nginx其他常用命令有 nginx.exe -s quit #停止服务 nginx.exe -s stop #停止服务 nginx.exe -s reload #重启服务1.3 配置nginx修改nginx配置文件nginx.conf(在解压目录下的conf子文件夹下):nginx默认配置为: #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } ... ... }将其中部分配置行修改为 server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root d:/myflask/src; #index index.html index.htm; proxy_pass http://localhost:5000; } ...... }说明: root d:/myflask/src,作用是将root根目录设置为你flask源文件所在的目录,服务器将在该文件夹中请求文件,俺的是d:/myflask/src。注释掉index行,因为后期所有html页面将由flask模板文件负责生成。添加proxy_pass行,其用途为将localhost:80请求全部转发到localhost:5000,也就是tornado监听的端口。1.4 重启nginx服务器若此时启动nginx服务器,并在浏览器中输入http://127.0.0.1,将会显示如下出错页面。给位看官莫慌,这是由于你的python服务器尚未启动导致的,后期启动tornado服务器后,浏览器就会显示正常页面。 2. 安装python应用环境win+R快捷键,输入cmd,进入命令行程序界面。 pip install tornado pip install flask 说明:如果flask安装不成功,可升级pip。其命令为python -m pip install -U pip 3. 构建项目myflask3.1 myflask结构该目录结构在pycharm中创建,项目结构如下: graph TD A(myflask)--> B(venv) & C[server.py] & D{src} D-->E[app.py] D-->F[other.py] D-->G(templates) D-->H(static) G-->I[index.html]3.2 server.pyserver.py为使用tornado搭建的“容器”,其源码: # coding=utf-8 from tornado.httpserver import HTTPServer from tornado.wsgi import WSGIContainer from src.app import app from tornado.ioloop import IOLoop s = HTTPServer(WSGIContainer(app)) s.listen(5000) # 监听5000 端口 IOLoop.current().start()说明:若server.py与app.py在同一目录下,则将app引入行修改为from app import app。 3.3 app.pyapp.py为使用flask写的应用,其源码: # coding=utf-8 from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Welcome to flask world!'3.4 启动tornado服务器win+R快捷键,输入cmd,进入命令行程序界面。 python d:/myflask/src/server.py在浏览器中输入http://127.0.0.1:5000后,会显示Welcome to flask world!字样。 3.5 重启nginx服务器win+R快捷键,输入cmd,进入命令行程序界面。 start c:/nginx/nginx.exe在浏览器中输入http://127.0.0.1或http://localhost后,会显示Welcome to flask world!字样。 至此配置基本完成!考虑到每次启动服务器,都要手动输入两次命令,可考虑将nginx及tornado注册为windows服务,详见后续文章。 |
CopyRight 2018-2019 实验室设备网 版权所有 |